package cn.tedu.micro.demo.order.feign;

import cn.tedu.micro.demo.common.result.JsonResult;
import cn.tedu.micro.demo.pojo.vo.CartVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

/**
 * 专属于订单一方 调用购物车的feign接口
 */
//接口我们无需实现 但是必须经过框架进行实例化--代理
//能够在微服务集群中找到某一个服务 进行接口调用
@FeignClient("micro-cart")
public interface CartFeignClient {
    //定义底层代码 发起的http请求的方法
    //方法的所有要素 保证底层RestTemplate能够拼接完整的http请求
    //使用SPRINGMVC注解 描述这个接口 底层http请求
    @GetMapping("/cart/list")
    JsonResult<List<CartVO>> cartList(@RequestParam("userId")String userId);

    @PostMapping("/cart/delete")
    public JsonResult deleteCart(@RequestParam("userId")String userId,
                                 @RequestParam("productCode")String productCode);
}
